package com.foxire.polymorphsm1;

public class Test {
    public static void main(String[] args) {
        // 目标：认识多态的代码
        // 1.多态的好处：代码的灵活度更高，代码的复用性更高，右边对象是解耦合的。
        Animal a = new Tortoise();
        a.run();
        //a.shrinkHead();// 报错，多态下不能调用子类独有功能。

        Wolf w = new Wolf();
        go(w);
        w.eat();

        Tortoise t = new Tortoise();
        go(t);
        t.shrinkHead();

    }

    public static void go(Animal a)
    //2、多态的好处2:父类类型的变量作为参数，可以接收一个子类对象
    {
        System.out.println("go");
        a.run();
    }
}
